package com.turnengine.client.global.user.command;

import com.javabi.codebuilder.generated.IGeneratedCommand;
import com.turnengine.client.global.command.IGlobalExecutableCommand;
import com.turnengine.client.global.game.enums.GameLevel;
import com.turnengine.client.global.user.enums.UserPermissionType;

/**
 * The I Set User Game Permission.
 */
public interface ISetUserGamePermission extends IGeneratedCommand, IGlobalExecutableCommand<Boolean>, Comparable<ISetUserGamePermission> {

	/**
	 * Returns the login id.
	 * @return the login id.
	 */
	long getLoginId();

	/**
	 * Returns the user id.
	 * @return the user id.
	 */
	int getUserId();

	/**
	 * Returns the id.
	 * @return the id.
	 */
	int getId();

	/**
	 * Returns the type.
	 * @return the type.
	 */
	UserPermissionType getType();

	/**
	 * Returns the level.
	 * @return the level.
	 */
	GameLevel getLevel();

	/**
	 * Sets the login id.
	 * @param loginId the login id to set.
	 */
	void setLoginId(long loginId);

	/**
	 * Sets the user id.
	 * @param userId the user id to set.
	 */
	void setUserId(int userId);

	/**
	 * Sets the id.
	 * @param id the id to set.
	 */
	void setId(int id);

	/**
	 * Sets the type.
	 * @param type the type to set.
	 */
	void setType(UserPermissionType type);

	/**
	 * Sets the level.
	 * @param level the level to set.
	 */
	void setLevel(GameLevel level);
}
